1. Field of the Invention
The present invention relates to an image forming apparatus, an image forming method, and a recording medium, which convert a data in a page-description language format into a data in a bitmap format and print it.
2. Description of Related Art
In recently years, a network-type image forming apparatus, such as a copy machine, a printer, and a MFP (Multi Function Peripheral) which receives a print data generated in external equipment such as a PC (Personal Computer) etc., i.e. a data in a page-description language format (PDL: Page Description Language)(hereinafter referred to as “a PDL data”) as represented by a POSTSCRIPT (registered trademark) or a PCL (Printer Control Language), through a network such as a LAN (Local Area Network) etc., once converts the received data into a data in an intermediate format (hereinafter referred to as “an intermediate data”), holds it on a memory, reads out the intermediate data held on the memory sequentially so as to convert it into a data in a bitmap format (hereinafter referred to as “a bitmap data”), and prints it.
For example, an image forming apparatus which comprises a plurality of PDL interpreters each of which develops a work area in a same memory area and operates a separate task, has been proposed (see JP2001-228991A). Since the interpreters share the memory area, when one interpreter uses the memory so that the memory area for another interpreter is run out, the latter interpreter stops a process until a process of the former interpreter is completed and the memory area is released.
There is an image forming apparatus which stores an intermediate data and a bitmap data in a shared storage area in analysis processing to analyze the PDL data so as to generate the intermediate data, and in rasterizing processing to rasterize the intermediate data so as to generate the bitmap data. In the image forming apparatus, after the bitmap data is generated, an area saved for storing the intermediate data corresponding to the generated bitmap data is released, and after printing the bitmap data, an area saved for storing the printed bitmap data is released.
Since the shared area for storing the intermediate data and the bitmap data is limited, for example, there is the case where a memory area for storing the bitmap data is run out in the middle of generating the bitmap data in the rasterizing process. In such case, if a space area occurs by printing the preceding pages, the rasterizing process may continue after the occurrence of the space area, and if a space area does not occur, it is preferable to execute a process of a memory-full error without waiting the occurrence of the space area. The “memory-full error” is an error in the condition where the memory area is run out and the process cannot be continued any more. Therefore, the matter is how to judge whether or not it is possible to continue the rasterizing process by waiting for printing the preceding pages.
In earlier development, when a memory area of a shared storage area is run out, a judgment whether or not it is possible to continue the rasterizing process is executed based on condition expression (1).(number of analyzed pages)−(number of pages whose memory area saved for storing the bitmap data has been released)>1  (1)
The “number of analyzed pages” is the number of pages to which the analysis processing has already been executed so that the intermediate data thereof has been generated. It includes pages to which the rasterizing process has already been executed so that the bitmap data thereof has been generated, and pages to which the area saved for storing the bitmap data after printing has been released.
FIG. 10A is an example where a shared storage area 200 is run out in the middle of generating a bitmap data B3 of the third page in the rasterizing process. Specifically, an image P1 of the first page has been printed, and a bitmap data B2 of the second page, a bitmap data B3 of the third page under generation, an intermediate data M3 of the third page, and an intermediate data M4 of the forth page have been stored in the shared storage area 200.
In an example shown in FIG. 10A, since “number of analyzed pages” is four and the “number of pages whose memory area stored for storing the bitmap data has been released” is one (1), the condition expression (1) is satisfied. Therefore, it is judged that it is possible to continue the rasterizing process by waiting until the shared storage area 200 opens.
Actually, since a printing processing is executed based on the bitmap data B2 of the second page and an area saved for storing the bitmap data B2 of the second page is released, a space area occurs so that the rasterizing process of the third page can be continued.
However, according to the judgment with the condition expression (1), there is the case where it is impossible to judge correctly whether the rasterizing process can be continued or not.
FIG. 10B is another example where the shared storage area 200 is run out in the middle of generating the bitmap data B3 of the third page. Specifically, the image P1 of the first page and the image P2 of the second page have been printed, and the bitmap data B3 of the third page under generation, the intermediate data M3 of the third page, and the intermediate data M4 of the forth page are stored in the shared storage area 200.
In an example shown in FIG. 10B, since the “number of analyzed pages” is four and the “number of pages whose memory area saved for storing the bitmap data has been released” is two, the condition expression (1) is satisfied. Therefore, it is possible to continue the rasterizing process by waiting until the shared storage area 200 opens.
However, actually, since there is no printable bitmap data, it is impossible to execute a printing processing. Further, since a memory area is run out, the rasterizing process cannot be continued. Thus, according to the judgment whether or not it is possible to continue the rasterizing process, there is the case where a deadlock occurs. Particularly, since a processing speed is getting faster owing to a change of a hardware constitution of an image forming apparatus and a sophistication of a LSI (Large Scale Integration), the deadlock occurs in such cases that the bitmap data under generation in the rasterizing process runs out the shared storing area.